package cn.iocoder.an.module.business.dal.dataobject.feedback;

import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.an.framework.mybatis.core.dataobject.BaseDO;

/**
 * 快捷反馈 DO
 *
 * @author 超级管理员
 */
@TableName(value = "business_feedback",autoResultMap = true)
@KeySequence("business_feedback_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FeedbackDO extends BaseDO {

    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 投诉日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date complaintDate;
    /**
     * 上板日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date boardtDate;
    /**
     * 计划关闭日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date planCloseDate;
    /**
     * 状态
     *
     * 枚举 {@link TODO feedback_status 对应的类}
     */
    private Integer status;
    /**
     * 问题来源
     *
     * 枚举 {@link TODO problem_source 对应的类}
     */
    private Integer problemSource;
    /**
     * 问题等级
     *
     * 枚举 {@link TODO problem_level 对应的类}
     */
    private String problemLevel;
    /**
     * 分布
     *
     * 枚举 {@link TODO distribution_type 对应的类}
     */
    private Integer distribution;
    /**
     * 历时
     */
    private Integer duration;
    /**
     * 客户
     */
    private String customer;
    /**
     * 部门
     */
    private Long deptId;
    /**
     * 提出人
     */
    private Long proposer;
    /**
     * 是否重发
     *
     * 枚举 {@link TODO resend_type 对应的类}
     */
    private Integer resend;
    /**
     * 责任人
     */
    private Long dutyUserId;
    /**
     * 解决小组成员
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<Long> solveUser;
    /**
     * 解决小组成员
     */
    private String solveUserName;
    /**
     * D2:问题描述
     */
    private String problemDescription;
    /**
     * 领导指示
     */
    private String instruction;
    /**
     * D2:到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expirationDateTwo;
    /**
     * D3:ICA临时措施
     */
    private String interimMeasures;
    /**
     * D4:原因分析
     */
    private String reasonAnalysis;
    /**
     * D3:到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expirationDateThree;
    /**
     * D4:到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expirationDateFour;
    /**
     * D5:PCA永久措施 
     */
    private String longMeasures;
    /**
     * D6:PCA验证结果 
     */
    private String verify;
    /**
     * D5:到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expirationDateFive;
    /**
     * D6:到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expirationDateSix;
    /**
     * 程序文件、控制计划、FMEA、工艺文件是否更新
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> files;
    /**
     * D7:到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date expirationDateSeven;
    /**
     * 下次汇报日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date reportDate;
    /**
     * 问题关闭日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date problemCloseDate;
    /**
     * 售后或0公里
     *
     * 枚举 {@link TODO after_or 对应的类}
     */
    private Integer afterOr;


}